using System;
using System.Collections.Generic;
using ns26;
using ns27;
using Triton.Game.Mono;

namespace Triton.Game.Mapping
{
	[Attribute38("PendingBnetFriendChangelist")]
	public class PendingBnetFriendChangelist : MonoClass
	{
		public List<BnetPlayer> m_friends => method_3<Class271<BnetPlayer>>("m_friends")?.method_25();

		public PendingBnetFriendChangelist(IntPtr address, string className)
			: base(address, className)
		{
		}

		public PendingBnetFriendChangelist(IntPtr address)
			: this(address, "PendingBnetFriendChangelist")
		{
		}

		public List<BnetPlayer> GetFriends()
		{
			return method_14<Class271<BnetPlayer>>("GetFriends", Array.Empty<object>())?.method_25();
		}

		public bool Add(BnetPlayer friend)
		{
			return method_11<bool>("Add", new object[1] { friend });
		}

		public bool Remove(BnetPlayer friend)
		{
			return method_11<bool>("Remove", new object[1] { friend });
		}

		public void Clear()
		{
			method_8("Clear");
		}

		public int GetCount()
		{
			return method_11<int>("GetCount", Array.Empty<object>());
		}

		public bool IsFriend(BnetPlayer player)
		{
			return method_10<bool>("IsFriend", new Class276.Enum20[1] { Class276.Enum20.Class }, new object[1] { player });
		}

		public BnetFriendChangelist CreateChangelist()
		{
			return method_14<BnetFriendChangelist>("CreateChangelist", Array.Empty<object>());
		}
	}
}
